﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace mi2project
{
    public partial class Következtetés : Form
    {
        SzabalyalapuReprezentacio SZR;
        VisszalepesesKereses VK;
        BizonyitasTipusa BT;

        public Következtetés(SzabalyalapuReprezentacio szr)
        {
            InitializeComponent();
            SZR = szr;
            comboBox1.SelectedIndex = 0;
            numericUpDown1.Value = 10;
            button2.Hide();            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == 0)
            {
                if (!SZR.teszt_előre())
                {
                    MessageBox.Show("A formulák alakja nem megfelelő!", "Hiba");
                    this.Close();
                    return;
                }
                BT = BizonyitasTipusa.elore;
            }
            else
            {
                if (!SZR.teszt_vissza())
                {
                    MessageBox.Show("A formulák alakja nem megfelelő!", "Hiba");
                    this.Close();
                    return;
                }
                BT = BizonyitasTipusa.vissza;
            }

            VK = new VisszalepesesKereses(BT, int.Parse(numericUpDown1.Value.ToString()));
            VK.start(SZR);

            if (checkBox1.Checked)
            {
                numericUpDown1.Enabled = false;
                comboBox1.Enabled = false;
                checkBox1.Enabled = false;
                button1.Hide();
                button2.Show();
            }
            else
            {
                VK.keresesVegrehajtas();
                if (VK.sikeresseg())
                {
                    MessageBox.Show("Sikerült levezetni");
                }
                else
                {
                    MessageBox.Show("Nem sikerült levezetni");
                }

                splitContainer1.Panel2.Controls.Clear();
                TreeView y = new TreeView();
                y = VK.kirajzolas();
                y.Dock = DockStyle.Fill;
                y.ExpandAll();
                y.Font = new System.Drawing.Font("Courier New", 12.0f);
                splitContainer1.Panel2.Controls.Add(y);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (VK.vege())
            {
                if (VK.sikeresseg())
                {
                    MessageBox.Show("Sikerült levezetni");
                }
                else
                {
                    MessageBox.Show("Nem sikerült levezetni");
                }
                button2.Hide();
                button1.Show();
                comboBox1.Enabled = true;
                numericUpDown1.Enabled = true;
                checkBox1.Enabled = true;
            }
            else
            {
                VK.lepes();
            }


            splitContainer1.Panel2.Controls.Clear();
            TreeView y = new TreeView();
            y = VK.kirajzolas();
            y.Dock = DockStyle.Fill;
            y.ExpandAll();
            y.Font = new System.Drawing.Font("Courier New", 12.0f);
            splitContainer1.Panel2.Controls.Add(y);            
        }
    }
}